
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    .form {
      width: 600px;
      margin:  100px auto;
    }
    .row {
      width: 100%;
      display: flex;
      border-top: 1px solid #0094ff;
      border-bottom: 1px solid #0094ff;
    }
    .cols-1 {
      flex: 1;
    }
    .cols-2 {
      flex: 2;
    }
    .cell {
      border-left: 1px solid #0094ff;
      padding: 10px 6px;
      line-height: 42px;
      text-align: center; 
    }
    .cell:last-child{
      border-right: 1px solid #0094ff;
    }
    .text {
      width: 268px;
      height: 30px;
      padding: 4px;
    }
    .btn {
      height: 38px;
      width: 104px;
    }
  </style>
</head>
<body>
  <div class="form">
    <div class="row">
      <div class="cell cols-1">请输入手机号码</div>
      <div class="cell cols-2">
        <input type="text" class="text">
      </div>
      <div class="cell cols-1">
        <input type="button" class="btn" value="获取验证码" id="getCode">
      </div>
    </div>
  </div>
</body>
<script>
/*
  效果： 验证码的倒计时

  思路：
    点击按钮，开始倒计时，每隔1秒钟，修改按钮的内容，当倒计时到达0，停止倒计时
    倒计时期间，按钮是不能点击的，倒计时结束，又可以重新点击

  步骤：
    1.获取元素
    2.注册点击事件
    3.点击之后，把按钮禁用 - disabled
    4.开启倒计时
      4.1 因为倒计时是每隔1秒执行一次，所使用 setInterval
      4.2 每隔1秒，修改按钮的文字
      4.3 当倒计时结束，倒计时到达0，把文字变回原来的，把按钮重新启用
*/

// 获取按钮
var btn = document.getElementById('getCode');
// 注册点击事件
btn.onclick = function(){
  // 禁用按钮
  btn.disabled = true;
  // 开始倒计时
  var time = 5;
  // 在点击的时候，先改变一次
  btn.value = '获取验证码('+ time +')';
  var timer = setInterval(function(){  
    // 每隔1秒钟，数字要减少1
    time--;  
    // 修改按钮的内容
    btn.value = '获取验证码('+ time +')';    
    // 当倒计时到达0的时候，停止定时器
    if(time === 0){
      // 停止的定时器
      clearInterval
      (timer);
      // 把按钮还原
      // 文字还原
      btn.value = '获取验证码';
      // 可以点击
      btn.disabled = false;
    }
  },1000);
}

</script>
</html>